/**
 * Created by ZhangZhiCheng on 20/05/21.
 */
const number = require('../model/numberModel/numberModel');


const preNum = {
  tea: '2',
  org: '3',
  stu: '1',
};

/**
 * Get account function
 * @param {string} type
 * @param {function} callback
 * @return {function | boolean}
 */
const setCustomerType = (type, callback) => {
  if (type && preNum.hasOwnProperty(type)) {
    getCustomerAccount(preNum[type], callback)
  }
  return false;
};
/**
 * Get current user account
 * @param {string} pre
 * @param {function} callback
 * @return {function | boolean}
 */
const getCustomerAccount = (pre, callback) => {
  number.findByPk(1).then(result => {
    let account = pre + result.currentValue + Math.random().toString().slice(-2);
    number.increment('currentValue',{ id: 1 }).then(() => {
      callback(account);
    });
  })
};

module.exports = {
  setCustomerType
};


// module.exports = {
  // getTeaAccount: function(callback) {
  //   number.findByPk(1).then(result => {
  //     const curVal = result.currentValue;
  //     let account = preNum['tea'] + curVal + Math.random().toString().slice(-2);
  //     number.increment('currentValue',{ id: 1 }).then(() => {
  //       callback(account);
  //     });
  //   })
  // },
  // getLearnNumber: function(callback) {
  //   number.findByPk(1).then(result => {
  //     const curVal = result.currentValue;
  //     let learn_number = preNum['org'] + curVal + Math.random().toString().slice(-2);
  //     number.increment('currentValue',{ id: 1 }).then(() => {
  //       callback(learn_number);
  //     });
  //   });
  // }



  //     return  Sequelize.transaction(function (t) {
  //       return number.findByTransaction({
//         where:{id:1},
//         transaction:t,
//         lock:t.LOCK.UPDATE
//       }).then(function (result) {
//         let learn_number = result[0].currentValue + Math.random().toString().slice(-2);
//         number.increment('currentValue',{id:1}, t).then(function () {
//           callback(learn_number)
//         })
//       }).catch(function () {
//         console.log('失败')
//       })
//     }).then(function (result) {
//       // Transaction 会自动提交
//       // result 是事务回调中使用promise链中执行结果
//     }).catch(function (err) {
//       // Transaction 会自动回滚
//       // err 是事务回调中使用promise链中的异常结果
//     });
// };
